﻿using SIIE_ERP.Codigo;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SIIE_ERP.BaseDatos
{
    public static class dbo_Cat_SIIE
    {
        
        #region SELECT

        public static DataTable Get_Paises()
        {
            string Query = "SELECT * FROM dbo_Cat_SIIE_Pais";

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public static DataTable Get_Paises_By_Nombre(string Nombre)
        {
            string Query = "SELECT * FROM dbo_Cat_SIIE_Pais WHERE Nombre = '@@Nombre'".Replace("@@Nombre", Nombre);

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public static DataTable Get_Estados_By_Nombre(string Nombre, int Id_SIIE_Pais)
        {
            string Query = "SELECT * FROM dbo_Cat_SIIE_Estado WHERE Nombre = '@@Nombre' AND Id_SIIE_Pais = @@Id_SIIE_Pais"
                .Replace("@@Nombre", Nombre)
                .Replace("@@Id_SIIE_Pais", Id_SIIE_Pais.ToString());

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public static DataTable Get_Estados(int Id_SIIE_Pais)
        {
            string Query = "SELECT * FROM dbo_Cat_SIIE_Estado WHERE Id_SIIE_Pais = @@Id_SIIE_Pais";

            Query = Query.Replace("@@Id_SIIE_Pais", Id_SIIE_Pais.ToString());

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public static DataTable Get_Estados()
        {
            string Query = @"SELECT A1.*, A2.Nombre AS Desc_Pais FROM (dbo_Cat_SIIE_Estado A1
                            INNER JOIN dbo_Cat_SIIE_Pais AS A2 ON A1.Id_SIIE_Pais = A2.Id_SIIE_Pais)";

            return SrvDB.ExecuteQuery_Get(Query);
        }

        #endregion

        #region INSERT

        public static  Respuesta Insert_Pais(string Nombre)
        {
            string Query = @"INSERT INTO dbo_Cat_SIIE_Pais
                            (
                                Id_SIIE_Pais,
                                Nombre
                            )
                            VALUES
                            (
                                IIF(DCount('*', 'dbo_Cat_SIIE_Pais') = 0, 1, DMax('Id_SIIE_Pais', 'dbo_Cat_SIIE_Pais') + 1),
                                '@@Nombre'
                            )".Replace("@@Nombre", Nombre);

            return SrvDB.ExecuteQuery_Insert(Query);    
        }

        public static Respuesta Insert_Estado(string Nombre, int Id_SIIE_Pais)
        {
            string Query = @"INSERT INTO dbo_Cat_SIIE_Estado
                            (
                                Id_SIIE_Estado,
                                Id_SIIE_Pais,
                                Nombre
                            )
                            VALUES
                            (
                                IIF(DCount('*', 'dbo_Cat_SIIE_Estado') = 0, 1, DMax('Id_SIIE_Estado', 'dbo_Cat_SIIE_Estado') + 1),
                                @@Id_SIIE_Pais,
                                '@@Nombre'
                            )".Replace("@@Nombre", Nombre).Replace("@@Id_SIIE_Pais", Id_SIIE_Pais.ToString());

            return SrvDB.ExecuteQuery_Insert(Query);
        }

        #endregion
    }
}
